Java Technologies SQLException এর বিভিন্ন মেথড (getMessage, getErrorCode, getSQLState) গাইড ও নোট

230

SQLException হল একটি চেকড এক্সসেপশন (checked exception) যা JDBC (Java Database Connectivity) ব্যবহারের সময় ডেটাবেস সম্পর্কিত ত্রুটি বা সমস্যা জানাতে ব্যবহৃত হয়। যখন একটি SQL অপারেশন (যেমন INSERT, UPDATE, SELECT, DELETE) চালানোর সময় কোনো ত্রুটি ঘটে, তখন SQLException এর মাধ্যমে ত্রুটি সম্পর্কিত বিস্তারিত তথ্য পাওয়া যায়।

SQLException এর কিছু গুরুত্বপূর্ণ মেথড রয়েছে যা আপনাকে ত্রুটির সম্পর্কে বিশদ তথ্য দিতে পারে, যেমন getMessage(), getErrorCode(), এবং getSQLState()। এই মেথডগুলির মাধ্যমে আপনি ত্রুটি বার্তা, ডেটাবেসের নির্দিষ্ট ত্রুটি কোড এবং SQL স্টেটমেন্ট সম্পর্কিত স্থিতি (state) পেতে পারেন।


1. getMessage() মেথড

getMessage() মেথড ব্যবহার করে আপনি ত্রুটির বিস্তারিত বার্তা বা কারণ জানতে পারবেন। এটি ত্রুটির সাধারণ বার্তা প্রদান করে যা ব্যতিক্রম ঘটানোর কারণ ব্যাখ্যা করে।

উদাহরণ:

try {
    // একটি ভুল SQL কুইরি চালানো
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
    Statement stmt = conn.createStatement();
    String query = "SELECT * FORM employees";  // ভুল শব্দ "FORM" ব্যবহৃত হয়েছে
    stmt.executeQuery(query);
} catch (SQLException e) {
    System.out.println("Error Message: " + e.getMessage());  // ত্রুটির বার্তা
}

ব্যাখ্যা:

  • যদি কোনো ত্রুটি ঘটে (যেমন SQL সyntaax ত্রুটি), তাহলে getMessage() ত্রুটির ব্যাখ্যা প্রদান করবে, যেমন "You have an error in your SQL syntax" বা "Table not found"

2. getErrorCode() মেথড

getErrorCode() মেথড ব্যবহার করে আপনি ডেটাবেসের নির্দিষ্ট ত্রুটি কোড বা SQLState কোড পাবেন। প্রতিটি ডেটাবেসের নিজস্ব ত্রুটি কোড থাকে, যা ত্রুটির ধরন জানাতে সহায়তা করে।

উদাহরণ:

try {
    // একটি ভুল SQL কুইরি চালানো
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
    Statement stmt = conn.createStatement();
    String query = "SELECT * FORM employees";  // ভুল শব্দ "FORM"
    stmt.executeQuery(query);
} catch (SQLException e) {
    System.out.println("Error Code: " + e.getErrorCode());  // ত্রুটি কোড
}

ব্যাখ্যা:

  • getErrorCode() ডেটাবেস নির্দিষ্ট ত্রুটি কোড ফেরত দেয়। এটি ডেটাবেস ইঞ্জিনে ত্রুটির ধরন জানাতে সাহায্য করে, যেমন MySQL এর জন্য 1064 (SQL syntax error)।

3. getSQLState() মেথড

getSQLState() মেথড SQL স্টেটমেন্টের সাথে সম্পর্কিত একটি স্টেট কোড প্রদান করে। এটি SQLState স্ট্যান্ডার্ডের উপর ভিত্তি করে নির্ধারিত থাকে এবং ডেটাবেস ত্রুটির ধরন জানাতে সহায়তা করে। SQLState কোডটি একটি পাঁচ অঙ্কের কোড যা ত্রুটির ধরন এবং গম্ভীরতা সম্পর্কিত তথ্য প্রদান করে।

উদাহরণ:

try {
    // একটি ভুল SQL কুইরি চালানো
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
    Statement stmt = conn.createStatement();
    String query = "SELECT * FORM employees";  // ভুল শব্দ "FORM"
    stmt.executeQuery(query);
} catch (SQLException e) {
    System.out.println("SQL State: " + e.getSQLState());  // SQLState কোড
}

ব্যাখ্যা:

  • getSQLState() মেথড একটি পাঁচ অঙ্কের স্টেট কোড রিটার্ন করে যা ত্রুটির ধরনের বিশদ বর্ণনা করে। উদাহরণস্বরূপ, 42000 সাধারণত একটি SQL syntax error এর জন্য ব্যবহৃত হয়।

4. SQLException এর অন্যান্য গুরুত্বপূর্ণ মেথড

4.1 getNextException()

getNextException() মেথডটি একাধিক ত্রুটি ঘটলে পরবর্তী ত্রুটিটি ফেরত দেয়। একাধিক ত্রুটি যদি থাকে, তবে আপনি একটি লিঙ্ক চেইন অনুসরণ করতে পারেন।

উদাহরণ:

try {
    // কোড যেখানে একাধিক SQLException হতে পারে
} catch (SQLException e) {
    System.out.println("First Error: " + e.getMessage());
    while (e.getNextException() != null) {
        e = e.getNextException();
        System.out.println("Next Error: " + e.getMessage());
    }
}

4.2 getCause()

getCause() মেথডটি যদি SQLException একটি আরেকটি ত্রুটির কারণে ঘটে, তবে সেই মূল ত্রুটির কারণ প্রদান করে।

try {
    // কোড যেখানে SQLException হতে পারে
} catch (SQLException e) {
    Throwable cause = e.getCause();
    if (cause != null) {
        System.out.println("Cause: " + cause.getMessage());
    }
}

সারাংশ

SQLException একটি গুরুত্বপূর্ণ JDBC ক্লাস যা ডেটাবেসে ত্রুটি ঘটলে এর সাথে সম্পর্কিত তথ্য সরবরাহ করে। আপনি getMessage(), getErrorCode(), এবং getSQLState() মেথড ব্যবহার করে ত্রুটির বার্তা, ত্রুটি কোড এবং SQL স্টেটস কোড পেতে পারেন, যা ত্রুটি বিশ্লেষণে সাহায্য করে।

  • getMessage(): ত্রুটির বিস্তারিত বার্তা দেয়।
  • getErrorCode(): ডেটাবেস নির্দিষ্ট ত্রুটি কোড প্রদান করে।
  • getSQLState(): SQLState স্ট্যান্ডার্ডের উপর ভিত্তি করে ত্রুটির স্টেট কোড প্রদান করে।

এই মেথডগুলির মাধ্যমে আপনি ডেটাবেস ত্রুটি শনাক্ত করতে পারেন এবং আপনার অ্যাপ্লিকেশনকে আরও নির্ভরযোগ্য এবং নিরাপদ করে তুলতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...